<?php
/**
 * @date        <!-- phpDesigner :: Timestamp [07-07-2010 15:10:35] -->
 * @filesource  cms.error.php
 * @package     WebCms
 * @copyright	Copyright (C) 2010
 * @author      Sérgio 'Horizak' Alves
 */

// Sem acesso directo
defined('_WEXEC') or die('Restricted access');

/**
 * Guarda os erros ocorridos numa array
 * 
 * @var         integer $errn - Contém o nível do erro gerado
 * @var         string $err - Contém a mensagem de erro
 * @var         string $file - Contém o nome do arquivo em que o erro foi gerado
 * @var         integer $line - Contém o número da linha em que o erro foi gerado
 */
function cms_error($errn,$err,$file = null,$line = null) {
  global $errorHandler;

  if ($file) $file = '||| '.$file;
  if ($line) $line = '('.$line.')';
  
  $type = array(
    1 => 'E_ERROR',
    2 => 'E_WARNING',
    4 => 'E_PARSE',
    8 => 'E_NOTICE',
    16 => 'E_CORE_ERROR',
    32 => 'E_CORE_WARNING',
    64 => 'E_COMPILE_ERROR',
    128 => 'E_COMPILE_WARNING',
    256 => 'E_USER_ERROR',
    512 => 'E_USER_WARNING',
    1024 => 'E_USER_NOTICE',
    2048 => 'E_STRICT',
    4096 => 'E_RECOVERABLE_ERROR',
    8192 => 'E_DEPRECATED',
    16384 => 'E_USER_DEPRECATED',
    30719 => 'E_ALL',
    100 => 'WebCms Core',
    101 => 'WebCms MySql'
  );

  if (!isset($type[$errn])) $type[$errn] = $errn;

  $errorHandler[$type[$errn]][] = "$err $file $line";
}

if (function_exists('set_error_handler')) set_error_handler('cms_error');
error_reporting(E_ALL);
?>